package com.bookstore.back.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.back.entity.BookTag;

import java.util.List;
import java.util.Map;

/**
 * 图书标签服务接口
 * 
 * @author 程序猿_Ti
 * @since 2025-07-22
 */
public interface TagService extends IService<BookTag> {

    /**
     * 分页查询标签列表
     * 
     * @param params 查询参数
     * @return 分页结果
     */
    IPage<BookTag> getTagList(Map<String, Object> params);

    /**
     * 获取所有标签列表
     * 
     * @return 标签列表
     */
    List<BookTag> getAllTags();

    /**
     * 创建标签
     * 
     * @param tag 标签信息
     * @return 是否成功
     */
    boolean createTag(BookTag tag);

    /**
     * 更新标签信息
     * 
     * @param tagId 标签ID
     * @param tag 标签信息
     * @return 是否成功
     */
    boolean updateTag(Integer tagId, BookTag tag);

    /**
     * 删除标签
     * 
     * @param tagId 标签ID
     * @return 是否成功
     */
    boolean deleteTag(Integer tagId);

    /**
     * 检查标签名称是否存在
     * 
     * @param name 标签名称
     * @param excludeId 排除的标签ID（用于编辑时检查）
     * @return 是否存在
     */
    boolean isTagNameExists(String name, Integer excludeId);
}
